home *** CD-ROM | disk | FTP | other *** search
/ Belgian Amiga Club - ADF Collection / BS1 part 19.zip / BS1 part 19 / Doc Disk 5 BS1.adf / PowerWindows2.5 < prev    next >
Text File  |  1988-12-10  |  52KB  |  1,015 lines

  1. PowerWindows 2.5 is the interactive, interface programming aid for the Amiga
  2.  computer. It provides you, the programmer, the ability to quickly create and
  3.  edit screens, windows, menus, and gadgets for your programs, with none of
  4.  the fuss or tedium of coding the necessary structures yourself. All you have
  5.  to do is move a mouse and push a button to:
  6.  
  7.      create new screens and windows;
  8.      edit old screens and windows;
  9.      "grab" (import) windows running elsewhere in the system;
  10.      add, move, delete, or edit window text;
  11.      modify window characteristics;
  12.      include or exclude IDCMP or other window flags;
  13.      add, move, edit or delete a menu;
  14.      add, move, edit or delete items and subitems in a menu;
  15.      add gadgets, move gadgets, clone gadgets, re-size gadgets,
  16.           set gadget characteristics, enter gadget text, and
  17.           delete gadgets;
  18.      add and manipulate Knob, PopUpMenu, and DragGadget
  19.           constructs as used with InovaTools1;
  20.      include IFF brush imagery in your gadgets or menus;
  21.      generate source code for all of the above;
  22.      and save your creations on disk for future editing.
  23.  
  24. PowerWindows provides you with instant feedback, allowing you to see exactly
  25.  how your creation will look without the trial-and-error of the
  26.  edit/compile/examine loop. You can effectively see your windows outside your
  27.  program, complete with menus, menuitems, subitems, text and gadgets -- almost
  28.  as if you were already running your program. When you are satisfied, select
  29.  your language and PowerWindows creates the structures for you. Save your
  30.  design in the intermediate file format so that it will be available should
  31.  you ever need to modify or add to it, or generate the same data for a
  32.  different language.
  33.  
  34. NOTE: You will need to provide the necessary entry points or procedure names
  35.  to properly interface the generated code with your program.
  36.  
  37. REQUIREMENTS: Amiga with 512K RAM and at least one disk drive, with
  38.  KickStart/Intuition version 1.2. Also required are the necessary include
  39.  files for the language of your choice which define the Intuition structures
  40.  that PowerWindows generates.
  41.  
  42. GETTING STARTED:
  43.  
  44. PowerWindows requires no installation. We recommend that you make a copy of
  45.  PowerWindows and put the original in a safe place, away from hazards like
  46.  fire, strong magnetic fields, and pirates. Use the copy as a "master", and
  47.  use the original only for making new legal copies.
  48.  
  49. Unlike the program, you might require some installation yourself. This
  50.  software expects you to be familiar  with the Amiga and with the programming
  51.  language of your choice. This means that we won't be defining terms like
  52.  drag bar (no jokes, please) or gadget. PowerWindows is a serious tool for
  53.  serious programmers.
  54.  
  55. PowerWindows can be run from either the Workbench or the CLI environments.
  56.  
  57. PowerWindows starts with a blank, 640 x 200 window, on the Workbench screen.
  58.  This is the "command window". To see just how simple it is to create a
  59.  PowerWindows interface design, get PowerWindows running and press the
  60.  Right-Amiga N key. This will open a new window on the Workbench screen
  61.  called "Your new window". At this stage you could immediately generate
  62.  source for "C" or assembler which would create the data needed to exactly
  63.  duplicate that window. But first, let's dress it up a bit..
  64.  
  65. Start by resizing the window and positioning it any way you like. It is a
  66.  real Intuition window so the drag bar, depth-arrangement and sizing gadgets
  67.  all work.
  68.  
  69. Next, press Right-Amiga A and read the message in the requester that pops up
  70.  at the top of the screen. This message explains how to use the Add a gadget
  71.  command that we have just invoked. When you have finished reading the text,
  72.  press the OK gadget on the requester and position your mouse somewhere over
  73.  the center of "Your new window" and click the left button. This tells PW2.5
  74.  where you want the TopLeft pixel of your gadget's border to be drawn. Now
  75.  drag the mouse inside the window and PW2.5 will follow your movements and
  76.  size the area of the gadget accordingly. After you have dragged the mouse
  77.  around for a bit, press the HELP key on your keyboard and PW2.5 will
  78.  redisplay the original message describing what you are doing. If you forget
  79.  which action you are expected to take or just want to CANCEL an action once
  80.  it has already begun, you can always press the HELP key for a reminder and a
  81.  chance to change your mind. For now, just press the OK gadget and put your
  82.  mouse back into "Your new window". PowerWindows is still with you, waiting
  83.  for you to make a final decision about the size of the new gadget. Click
  84.  inside the window to tell PW when you are done.
  85.  
  86. Now you have a real window with a real BOOLEAN gadget in it, but we still need
  87.  a menu. So press Right-Amiga M and PW will open a requester used to specify
  88.  several options about menus, but right now we just want to key in a name for
  89.  our first menu, so just type in "My First Menu" into the preactivated string
  90.  gadget labeled MENU TEXT. Next press the OK gadget and the requester will
  91.  close. Your window now has a real menu attached to it with one menuitem
  92.  called "dummy". If you need proof, click on the drag bar of "Your new window",
  93.  followed by the right mouse button. Your menu is there and it looks exactly
  94.  the way it would look in your program if you generated source code for this
  95.  window right now. So let's do that right now.
  96.  
  97. Press Right-Amiga G and a requester will open with the names of the three
  98.  language generators that PW2.5 has built-in listed in gadgets at the top.
  99.  Press on the language you want and then press on the word OUTPUT (not in the
  100.  string gadget to the right of the word) and the InovaTools1 file requester
  101.  will open allowing you to specify the complete filename for the output file
  102.  you want to generate. Choose a filename like "ram:test.c", or at least some
  103.  filename that you wont mind letting PW use.
  104.  
  105. Once you have specified a filename for our little test window's source code,
  106.  the file requester will close and stuff the filename into the OUTPUT string
  107.  gadget. If you already know the filename, of course you can key it directly
  108.  in this box. Finally, press the OK gadget on the source code generation
  109.  requester and PW2.5 will write a file with all the data you need to duplicate
  110.  this simple interface in your own software.
  111.  
  112. Now, we want to save this design for later editing, of course, so press
  113.  Right-Amiga S and the file requester will reappear to let you indicate a save
  114.  filename. By default PW will save your file with the ".pw" extension added to
  115.  the name, but you can use any extension you want by typing into the box on
  116.  the file requester labeled Type and pressing RETURN, or use no extension at
  117.  all by deleting all characters in this field and pressing RETURN. Once you
  118.  have specified the filename press the Save gadget on the file requester and
  119.  the save will be made. In the case of a disk error, PowerWindows will report
  120.  it to you and allow you to try the save again.
  121.  
  122. Now that the file is saved, you can Quit PW2.5 and come back to that same file
  123.  anytime using the Right-Amiga L option, and then just pick right up where you
  124.  left it last time.
  125.  
  126. That was a simple PowerWindows 2.5 editing session. Now use the menu button
  127.  to see the main menustrip, which consists of seven primary menus:
  128.  
  129.      Project
  130.      Screens
  131.      Windows
  132.      Menus
  133.      Gadgets
  134.      Knobs
  135.      Preferences
  136.  
  137. Each of the menus listed above are discussed in the sections following. This
  138.  manual is organized in the same way that the menus are organized.
  139.  
  140. PROJECT:
  141.  
  142. Under the Project menu you will find the following:
  143.  
  144.      Generate source code
  145.      Save configuration
  146.      Save screen and/or windows
  147.      Load screen and/or windows
  148.  
  149.      Kill everything
  150.  
  151.      Quit...
  152.  
  153. Generate source code is the whole point of PowerWindows. This command lets you
  154.  specify the language of your choice and several other options. (For languages other than "C" and 68000
  155.  assembler, you must use the specific language translator program provided for
  156.  that language, which you will find on your distribution disk. These
  157.  translator programs use the intermediate file format generated by the Save
  158.  screen and/or windows command.) Before starting the code generation, you must
  159.  specify the OUTPUT filename. If you don't know the filename to use, you can
  160.  click on the word OUTPUT for a file requester. You may also specify a HEADER
  161.  filename. The HEADER file is a file that you wish copied into the start of
  162.  the source generated by PW. This file may contain definitions, include
  163.  statements, or anything else. You may click on the word HEADER for a file
  164.  requester if you need one.
  165.  
  166. You can also control which "sections" of the source code to generate. For
  167.  example, assume you have created a source file with PowerWindows, and then
  168.  edited it for some particular purpose; if you need to edit that design in
  169.  the future and regenerate the source code, PW will allow you to generate
  170.  source for only those parts of the design that have changed. Just turn off
  171.  the sections that you do not want generated. The sections include: SCREEN,
  172.  PALETTE, WINDOWS, GADGETS, MENUS, WINDOWTEXT, RENDER (BORDER ONLY and IMAGE
  173.  ONLY gadgets), and EVENTS (the event handler).
  174.  
  175. The LOCAL STRUCTURES option instructs PW to make all structures generated
  176.  local, if the target language supports such a concept. An example is static
  177.  structures in C. Finally, the BORDERS/IMAGES GADGET option tells PW to
  178.  generate a special gadget as a link for the render of any BORDER ONLY or
  179.  IMAGE ONLY gadgets (see Define gadget type for details) that may exist in
  180.  your design. In other words, rather than create the standalone linked list
  181.  of Borders/Images that would normally be created, PW will link those lists
  182.  into a gadget designed just for rendering that data. The gadgets have a size
  183.  of zero, use no highlighting and are placed in the extreme TopLeft corner
  184.  of the window that they inhabit.
  185.  
  186. Save configuration lets you save your current Preferences settings to a file
  187.  called "devs:pw2-configuration". This file is automatically loaded when PW
  188.  is invoked. Note that your preferences are also saved to every PW
  189.  intermediate file that you make, and are loaded from those files.
  190.  
  191. Save screen and/or windows will save information to a file about your screen
  192.  and windows in a format that PowerWindows can read to recreate it. If you
  193.  wish to retain the ability to edit your current design, you must use this
  194.  option. We suggest that you append ".PW" to the filename to indicate what
  195.  kind of file your are saving. (The file requester also automatically looks
  196.  for .PW files as a default.) At any time in the future, you can select Load
  197.  screen and/or windows from the Project menu and read this file to examine
  198.  and edit this design. Your PW Preferences settings and source code generation
  199.  options are also stored in this file. Note that additional PW support
  200.  programs, such as generators for other languages, use this type of file. In
  201.  the future, INOVATRONICS will provide tools allowing other uses for this
  202.  format.
  203.  
  204. Load screen and/or windows  loads a file generated in the above manner and
  205.  opens the windows and screen contained therein. Note that PW will merge the
  206.  incoming windows with any current windows you are working with. If a custom
  207.  screen is found in the file, and you already have a custom screen, PW will
  208.  prompt you to ask if you wish to replace the current screen with the one
  209.  from the file. The Preferences in use are always those from the most recently
  210.  loaded intermediate file.
  211.  
  212. Once you have loaded a file in this way, you can manipulate all of the objects
  213.  in your design, exactly as if you had just created them. This allows you to
  214.  easily play with interface designs, move this object here or there, and
  215.  experiment.
  216.  
  217. One extremely practical way to make use of this feature is to create a
  218.  "toolbox" window of gadgets or knobs that you use on a regular basis, then
  219.  save that window as a normal PW intermediate file. Then, whenever you need a
  220.  gadget just like one of the ones in your toolbox, you can re-load the window
  221.  and move or clone a gadget out of that window, and into the one you are
  222.  currently designing. After you have what you need from your toolbox, you can
  223.  simply remove it with the Kill window command.
  224.  
  225. Kill everything will close any custom screen and all windows with which you
  226.  are currently working. There is no undo feature. Be warned.
  227.  
  228. Quit... means just that. Make sure you've saved an editable file if there's
  229.  any chance you might need to change the display on which you are working.
  230.  (Re-creating a complex window with many menus and gadgets is far easier with
  231.  PowerWindows than without it, but it IS still work.) PowerWindows will ask
  232.  you if you wish to abandon any changes you have made, if you have not saved
  233.  at least an editable file to disk.
  234.  
  235. SCREENS:
  236.  
  237. You can design custom screens and palettes with the Screens functions.
  238.  
  239. Define screen type will present you with a window with which you can determine
  240.  your screen's dimensions, the number of bitplanes it uses, the pen numbers,
  241.  default font and title for the screen. Use these gadgets to control the type
  242.  of screen you get, select the CUSTOMSCREEN gadget, and press OK. A new screen
  243.  will appear with the indicated characteristics. All windows that you later
  244.  open will appear on this screen, or, if you already have windows open, they
  245.  will be moved to this screen. Four gadgets are provided for selecting any one
  246.  of the four standard NTSC screen sizes, however you may key any dimensions
  247.  you like into the Width and Height gadgets at the top of the requester. PW
  248.  will not verify that the numbers you have chosen are legal; this is your
  249.  responsibility. To return to a Workbench screen, select the WBENCHSCREEN
  250.  gadget and press OK.
  251.  
  252. Several flags appear under the Screen Flags section of this requester which
  253.  are not WYSIWYG, but will be generated in your source code. The same applies
  254.  to the CUSTOMBITMAP POINTER string and the GADGETLIST string.
  255.  
  256. To move quickly between the PW command window, which is on the Workbench
  257.  screen, and your custom screen, you can use the F1 and F2 keys.
  258.  
  259. Screen Palette brings up a palette editor which you can use to change the RGB
  260.  settings for your screen's colors. The colors on the requester are oriented
  261.  left-to-right beginning with color 0. You can use the READ PALETTE FROM IFF
  262.  gadget to specify an IFF brush filename from which to read a palette. If you
  263.  need a file requester to help you select the proper file, click over the
  264.  phrase READ PALETTE FROM IFF. If you modify your palette, only to later
  265.  change your screen definition, the palette changes may be lost. A color
  266.  palette is maintained through screen definition changes only if the number
  267.  of bitplanes used in the old and the new custom screens is the same.
  268.  
  269. WINDOWS:
  270.  
  271. PowerWindows 2.5 lets you work with any number of windows simultaneously.
  272.  However, all the commands relating to windowtext and menus operate only on
  273.  the context window. For example, if you have two windows open and you tell
  274.  PW to Redisplay, it will redisplay the current context window. You switch
  275.  context windows by clicking inside the window that you want to become active.
  276.  You can switch context windows only when PW is waiting for input at the main
  277.  menu level.
  278.  
  279. Under the Windows menu heading you'll see:
  280.  
  281.      Open new window
  282.      Grab a window
  283.      Redisplay
  284.      Clean up
  285.      Edit window characteristics
  286.      Kill window
  287.      Write window text
  288.      Move window text
  289.      Edit window text
  290.  
  291.      Delete window text
  292.  
  293. Open new window opens a new Intuition window on the Workbench screen or on
  294.  your custom screen if you have made one. You can do anything to this window
  295.  that you like because it is an actual window. At various times, PW will read
  296.  information from this window's structure regarding its position and size, but
  297.  you can play with it freely. The new window automatically becomes the context
  298.  window for windowtext and menus. To quickly reselect the PW command window,
  299.  you can press F1, click inside the PW command window, or if Auto select is
  300.  on, just click inside any one of your edit windows.
  301.  
  302. Grab a window is one of the most powerful PW commands. It allows you to import
  303.  any window running at the time as a PowerWindows construct and edit it as if
  304.  you had generated it manually. After selecting this option, you will have a
  305.  new menustrip with the following menus:
  306.  
  307.      Screens
  308.      Other
  309.  
  310. On the Screens menu you will find a list of all screens open at that moment,
  311.  and a list of all windows open on each screen will be shown as subitems to
  312.  that screen. The windows and screens are identified by their titles. If a
  313.  screen or window has no title, its item will appear as a blank. To grab one
  314.  of the windows listed, just select its name. The window, with all of its
  315.  menus and gadgets will be imported into PW for instant editing. Note that
  316.  some things are not grabbed, such as imagery, borders, or text that were
  317.  drawn into the window individually and are not connected to any gadget or
  318.  menu. For each gadget grabbed that uses a border for render, a custom border
  319.  is created. You may delete or replace this border by doing border work on
  320.  that gadget. All menus are set to USER FORMATTING when grabbed because PW
  321.  wants to maintain the original look and positioning of the grabbed menus. If
  322.  you are grabbing a window from a screen of a resolution different from the
  323.  one you are designing, PowerWindows may have to change the size or origin of
  324.  the window to make it fit. The Other menu allows you to return to the main
  325.  menu.
  326.  
  327. Redisplay refreshes your current window, cleaning up any display problems that
  328.  might result from your editing. The raster of your window is blanked, then
  329.  all gadgets, knobs and windowtext are redrawn into it.
  330.  
  331. Clean up is provided to ensure that all gadgets and knobs in your window are
  332.  actually in the displayable area of your window. For example, if you have put
  333.  a knob or gadget in the far right-hand side of your window and you then make
  334.  the window more narrow by resizing it to the left, those gadgets and/or knobs
  335.  may be no longer in your view. This can cause problems, because in order to
  336.  manipulate a gadget or knob with PowerWindows, you must be able to select it
  337.  with the mouse. The Clean up command will move any gadgets or knobs which are
  338.  outside the display area back into it. Also, because of gadget WYSIWYG
  339.  relativity, it is possible for you to create a gadget with a hitbox which has
  340.  a negative size. PW will detect any such problems and correct them when this
  341.  command is used.
  342.  
  343. Edit window characteristics gives you the opportunity to specify the
  344.  following:
  345.  
  346.      Detail and block rendering pens;
  347.      Minimum and maximum window dimensions:
  348.      Current window dimensions;
  349.      Current window position;
  350.      Window title;
  351.      Window type (window or requester)
  352.      Window ID prefix (added to all structure names for this window
  353.      IDCMP flags and window flags
  354.  
  355. The IDCMP flags in this window can be toggled ON or OFF to include them or
  356.  not in the generated source code, but during editing the window has IDCMP
  357.  flags used by PowerWindows internally. (To see what they are, try grabbing
  358.  one!) Of the normal window flags, these are WYSIWYG: WINDOWCLOSE, WINDOWDRAG,
  359.  WINDOWDEPTH, WINDOWSIZE, SIZEBBOTTOM, SIZEBRIGHT, BACKDROP, and BORDERLESS.
  360.  See the Amiga ROM Kernal manuals for complete descriptions of the flags
  361.  listed on this display.
  362.  
  363. If you want PW to make a Requester structure rather than a NewWindow structure
  364.  at source code generation time, you can hit the gadget labeled TYPE, and it
  365.  will toggle between WINDOW and REQUESTER.
  366.  
  367. Kill window will remove the current window. Be sure to select the window you
  368.  want to destroy before using this option, as there is no UNDO command.
  369.  
  370. Write window text lets you write a string of text to be displayed in your
  371.  window. After keying in the text, click OK and move your pointer to the
  372.  location in your window where you want the upper left-hand pixel of the first
  373.  character of the text to appear. Click here (the text appears) and drag the
  374.  pointer to position the text more exactly. Click again when your text is
  375.  properly positioned. (Windowtext and gadgettext are different. Windowtext is
  376.  relative to a window and in the source code is generated as a linked list of
  377.  IntuiText structures that you can draw into the window yourself with a single
  378.  PrintIText call. Gadgettext is relative to a gadget. If you move the gadget,
  379.  the text will move with it. If you delete a gadget -- BAM! -- the text is
  380.  gone too. Gadgettext is also generated in source as a linked list of
  381.  IntuiText structures, but they are referenced by the gadget they were
  382.  designed with and will be automatically rendered when their parent gadgets
  383.  are rendered.)
  384.  
  385. Edit window text displays as subitems one or more text strings that you have
  386.  previously entered for this window. (If none have been entered, this and
  387.  subsequent menuitems are disabled.) Just select the text string subitem that
  388.  you would like to edit. This gives you a window from which you can choose
  389.  text pens, drawmode and font (default, TOPAZ-SIXTY or TOPAZ-EIGHTY) as well
  390.  as edit the text and its offsets from the TOPLeft corner of the window. All
  391.  source code needed to duplicate your text will be generated by PowerWindows,
  392.  including TextAttr structures for the fonts. After editing, the window will
  393.  be redisplayed with any text changes shown.
  394.  
  395. Move window text gives you the ability to move individual strings of window
  396.  text around in the window. The movement of the text within the window will
  397.  be relative to the position of your pointer when you first click inside your
  398.  window. This gives you the ability to click somewhere near your text, but not
  399.  on it, so that you can see the entire text string as you move it.
  400.  
  401. Delete window text enables you to remove unwanted text from your window. Just
  402.  select the text to kill and POOF! It's gone.
  403.  
  404. MENUS:
  405.  
  406. Making menus with PowerWindows 2.5 is very easy. The menus that you create
  407.  are, at all times, real menus, attached to the window with which you are
  408.  working. Therefore, you can see what your menu looks like at any time. Plus,
  409.  if you are working with a custom screen, you can see the menu in the
  410.  resolution in which it will be used. To see the menus for a particular
  411.  window, you must select that window. If the Auto select preference is ON,
  412.  you can only select the window by clicking on one of its system gadgets, like
  413.  a drag bar or foreground gadget. If the window has no system gadgets, you can
  414.  add them with the Edit window characteristics command, or you can turn off
  415.  Auto select and just click inside the window.
  416.  
  417. Under normal conditions, all menu elements are automatically positioned by
  418.  Power Windows. This is called AUTO FORMATTING. PW will always do its best to 
  419.  see that the menuitems and subitems are visible when the menus are rendered,
  420.  and are attractively arranged. However, you can position the items yourself,
  421.  if you like, by setting the USER FORMATTING flag for the menu or item and
  422.  specifying the needed pixel values. But be careful; if you use irrational
  423.  values, your computer will respond irrationally! If you do not set the
  424.  USER FORMATTING flag, PW will ignore any pixel values that you set.
  425.  
  426. The Menus menu deals with menus, menuitems, and menu subitems for your current
  427.  window. Your menus are dynamically updated every time you make a change to
  428.  them. You can append a menu to the end of the menu tree, or you can insert a
  429.  new menu in front of others. You can rearrange the menus, delete them, etc.
  430.  You can also do the same things with the menuitems for each menu and with the
  431.  
  432.  subitems for each menuitem. You can attach Amiga-keys to menuitems and
  433.  subitems, and have the items checked/unchecked or enabled/disabled by
  434.  Intuition. You can instruct Intuition to un-check certain menuitems or
  435.  subitems when others are selected. You can also load imagery for the
  436.  rendering of menuitems and subitems.
  437.  
  438. The Menus menu shows you:
  439.  
  440.      Append a menu
  441.      Insert a menu before...
  442.      Move a menu
  443.      Edit a menu
  444.      Work on menuitems for...
  445.  
  446.      Delete a menu
  447.  
  448. Append a menu lets you to enter the name of a new menu, choose AUTO or USER
  449.  FORMATTING, and set/reset the MENUENABLED flag. After you OK the settings,
  450.  PowerWindows creates a menu with that name and attaches a "dummy" menuitem
  451.  to it. (This dummy goes away when you add a real menuitem to the menu.) All
  452.  menus created in this manner are appended to your menustrip (i.e., list of
  453.  menus).
  454.  
  455. Insert a menu before... shows you the menus that exist. When you select one
  456.  of them, you will be prompted for the name of the new menu to insert before
  457.  the selected one.
  458.  
  459. Please note that only the first 15 characters of each menu name will be
  460.  displayed here; the full menu name will be used in your window and in any
  461.  generated source code. This truncation applies to menuitem names, subitem
  462.  names, gadgettext and windowtext, as well.
  463.  
  464. Move a menu lets you move a menu toward the back of the list (the end) or
  465.  toward the front of the list (the start). You can move a menu only one
  466.  position at a time, so you may have to invoke Move a menu several times to
  467.  get things just so.
  468.  
  469. Edit a menu lets you change all the settings of a selected menu.
  470.  
  471. Work on menuitems for... allows you to attach menuitems, subitems, and their
  472.  options to the menu you select. See the next section for details.
  473.  
  474. Delete a menu removes the selected menu from the menu tree. Use this one with
  475.  caution, as it removes everything having to do with that menu, menuitems,
  476.  subitems and all.
  477.  
  478. MENUITEMS:
  479.  
  480. When you select a menu form Work on menuitems for..., you are given a
  481.  completely new menustrip from which to work. It has two menus:
  482.  
  483.      MenuItems
  484.      Other
  485.  
  486. Menuitems looks, and is, similar to the Menus menu, but "menuitem" replaces
  487.  "menu" and "subitem" replaces "menuitem", and there is one more choice on
  488.  the menu; Work on images for..." Basically, however, you can do to menuitems
  489.  what you did to menus:
  490.  
  491.      Append a menuitem
  492.      Insert a menuitem before...
  493.      Move a menuitem
  494.      Edit a menuitem
  495.      Work on images for...
  496.      Work on subitems for...
  497.  
  498.      Delete a menuitem
  499.  
  500. Under AUTO FORMATTING the width of the longest hit box in your menuitem list
  501.  determines the width of all the menuitem hit boxes in the menuitem list for
  502.  that menu. You can pad your menuitem names with spaces to make the box wider,
  503.  or play with the choices you get in the editing window.
  504.  
  505. Append a menuitem, Insert a menuitem before..., and Edit a menuitem all use a
  506.  window that allows you to specify a number of Intuition menuitem flags, text
  507.  for the item, as well as an alternate command key for the item. You can also
  508.  control the presentation of the IntuiText rendered in your window with this
  509.  option. The ROOM FOR CHECK and ROOM FOR ALTKEY provide some additional
  510.  spacing to the left and right of the item render for a checkmark and an
  511.  alternate command key, respectively. The FUNCTION gadget lets you key in a
  512.  function or vector name for execution when this item is selected. This
  513.  execution is performed in conjunction with the event-handler
  514.  (please see Using the event handler for details.)
  515.  
  516. Also contained in this window is a menu which allows you to specify the items
  517.  which the current item should mutually-exclude. (Mutual-exclude refers to one
  518.  item which, when selected, will un-check a list of other items on the same
  519.  menu, or other subitems of the same menuitem.) Notice that the item upon
  520.  which you are working is also listed here because it is perfectly legal to
  521.  make an item exclude itself, though it rarely makes any sense. As you move,
  522.  insert or delete items from the menu, these mutual-exclude values are
  523.  automatically maintained by PW2.5.
  524.  
  525. Work on images for... allows you to load or delete IFF brush imagery to use
  526.  for menuitem rendering. You can load both the render (unselected) and select
  527.  (selected) imagery. PW automatically makes the select boxes of the items in
  528.  the list wide enough for the images to be attractively integrated, even if
  529.  you mix images and text on a single item list.
  530.  
  531. Work on subitems for... sets up yet another new menu, just slightly different
  532.  from the last one:
  533.  
  534.      Append a subitem
  535.      Subitem columns(1)
  536.      Insert a subitem before...
  537.      Move a subitem
  538.      Edit a subitem
  539.      Work on images for...
  540.  
  541.      Delete a subitem
  542.  
  543. The slight difference is Subitem columns. With this option you can display
  544.  your subitems in up to 9 columns.
  545.  
  546. Other on the Subitem menu offers a return to the Main menu or a return to the
  547.  Menuitem menu, while Other on the Menuitem menu only lets you return to the
  548.  Main menu.
  549.  
  550. GADGETS:
  551.  
  552. All gadgets created by PowerWindows are rectangular, but they can be virtually
  553.  any size from a few pixels to the entire area of the window, and with the
  554.  Clone a gadget feature you can make very professional-looking screens filled
  555.  with gadgetry of varying sorts and colors. PW lets you create all three
  556.  Intuition gadget types, BOOLEAN, STRING and PROPORTIONAL and work with them
  557.  in a what you see is what you get fashion. You can also load custom imagery
  558.  for the the render (unselected) and the select (selected) fields of a gadget.
  559.  Additionally, most of the flags which control the gadget's appearance are
  560.  also WYSIWYG.
  561.  
  562. With PowerWindows version 2.5, you can also work with two special types of
  563.  BOOLEAN gadgets: PopUpGadgets and DragGadgets. Both of these new gadget types
  564.  are meant to be used with the InovaTools1 package available from
  565.  INOVATRONICS, Inc. If you do not intend to use InovaTools1 with your
  566.  software, then do not use these new gadgets types in your design. PW2.5 has
  567.  the support routines for the InovaTools1 functions built-in to it, so you
  568.  can design these special items, even if you cannot use them in your own
  569.  programs.
  570.  
  571. PopUpGadgets are BOOLEAN gadgets that, when pressed, will display a menu of
  572.  your design under the mouse and allow the user to select a menuitem or
  573.  subitem just as if a normal intuition menu were being used. You specify that
  574.  you want a gadget to be a PopUpGadget through the Define gadget type command.
  575.  Then you may edit the menu attached to the gadget through the Work on
  576.  PopUpGadget menuitems command. After making a PopUpGadget, when you click on
  577.  the gadget your special menu will be displayed under the mouse.
  578.  
  579. DragGadgets are BOOLEAN gadgets which use an image for render and may be
  580.  dragged around the screen. You can make the gadget stay where it is put or
  581.  rubber-band back, move around just in the window in which they are defined
  582.  or allow them to move anywhere on the screen! You can also control the way
  583.  in which the render image is displayed while the gadget is being dragged, 
  584.  and the dimensions of the area in which the gadget can move. Once you have
  585.  created a DragGadget, you can click on it and drag it anywhere in your
  586.  window.
  587.  
  588. Both of these gadget types are fully WYSIWYG within PowerWindows. A full
  589.  discussion of their properties and how to control them are beyond the scope
  590.  of this documentation. You must refer to the InovaTools1 manual for further
  591.  information.
  592.  
  593. Under the Gadgets menu you'll find:
  594.  
  595.      Add a gadget
  596.      Move a gadget
  597.      Clone a gadget
  598.      Re-size a gadget
  599.      Define gadget type
  600.      Work on gadget borders
  601.      Work on gadget text
  602.      Work on gadget images
  603.      Work on PopUpGadget menuitems
  604.  
  605.      Move gadget to start of list
  606.      Choose gadget successor
  607.      Move gadget to end of list
  608.  
  609.      Delete a gadget
  610.  
  611. Add a gadget waits for you to click in one of your windows to position the
  612.  TopLeft corner of your gadget's border. Drag the mouse to size the gadget
  613.  appropriately. Click the mouse button again and the box becomes a real
  614.  BOOLEAN gadget, hooked into your window. Note that your ability to size the
  615.  gadget, and then later to move it, may be impeded by the status of the Gadget
  616.  collision checking flag which, when on, will prevent the bisection of one
  617.  gadget by another. You may wish to disable this function for special
  618.  applications, but be aware that the designers of Intuition strongly
  619.  discourage the practice of overlapping or intersecting gadgets.
  620.  
  621. Move a gadget lets you change the position of a gadget by clicking inside the
  622.  gadget and dragging it to a new location. Any associated gadget text will be
  623.  moved also. That is, its position relative to the gadget will not change.
  624.  When moving STRING gadgets, after selecting the gadget, press return. After
  625.  that, the gadget may be moved normally. Press the left mouse button when it
  626.  is properly positioned. Similarly, always move PROPORTIONAL gadgets by their
  627.  knobs, not by clicking inside the gadget's container.
  628.  
  629. You may move a gadget from one of your windows to another by simply picking
  630.  the gadget to move and moving your mouse until it is over the window to which
  631.  you wish to move the gadget. Then click the mouse again and the gadget will
  632.  be removed from the old window and deposited in the new window.
  633.  
  634. Clone a gadget lets you duplicate a gadget exactly, both in terms of hitbox
  635.  size and in terms of gadget flags, text, and imagery or borders. Select the
  636.  gadget to clone and a new gadget, slightly offset to the BottomRight, will
  637.  be created. Now drag the pointer to position the duplicate gadget and click
  638.  the left mouse button when you are finished.
  639.  
  640. You can clone gadgets from one window to another in exactly the same manner
  641.  as they are moved from one window to another, as described above.
  642.  
  643. Re-size a gadget gives you another opportunity to get that gadget just right.
  644.  Click and hold the select button when the pointer is on the desired gadget.
  645.  Dragging the mouse around will re-size the gadget. Click the button again
  646.  when the gadget is the correct size.
  647.  
  648. Define gadget type, after selecting a gadget to work on, gives you a new
  649.  window full of various flag settings and decisions you can make concerning
  650.  your gadget. From this screen, you can determine the gadget type, set its
  651.  size and origin locations, and specify various data for the generation of
  652.  your gadget's source code.
  653.  
  654. A few Define gadget type notes:
  655.  
  656. The relativity flags GRELRIGHT, GRELBOTTOM, GRELWIDTH, and GRELHEIGHT, if
  657.  selected, ARE put into effect while in PowerWindows. Therefore, any changes
  658.  made to the size of the window in which the relative gadgets reside, will
  659.  effect the position and/or size of the relative gadgets. Be careful: it is
  660.  possible, for instance, to make a gadget with the GRELWIDTH flag set, then
  661.  resize its containing window to be so small that the gadget attains negative
  662.  dimensions. Intuition will not object, but it will be impossible for your
  663.  user or yourself to select this gadget. Use the Clean up command from the
  664.  Windows menu to fix any problems arising from the use of this WYSIWYG
  665.  feature.
  666.  
  667. BORDER-ONLY and IMAGE-ONLY gadgets are gadgets only in the context of a
  668.  PowerWindows editing session. At the time of source code generation, all of
  669.  the borders of the BORDER-ONLY gadgets will be written as a linked list of
  670.  Border structures, one for each BORDER-ONLY gadget, and likewise for the
  671.  IMAGE-ONLY gadgets. Any text associated with these gadgets is NOT GENERATED
  672.  AT ALL. Use BORDER-ONLY gadgets to draw boxes around groups of gadgets and
  673.  text, as we have done with this screen, and use IMAGE-ONLY gadgets to place
  674.  various images around your display.
  675.  
  676. PopUpGadgets are BOOLEAN gadgets that have a PopUpMenu attached to them for
  677.  use with InovaTools1.
  678.  
  679. DragGadgets are BOOLEAN gadgets that can be dragged around the display and
  680.  use imagery for render. Selecting this option will bring up a requester
  681.  allowing you to indicate the dimensions of the DragGadget's bounding-box, as
  682.  well as the various flags used by DragGadgets. Also, if the language you are
  683.  working with supports vectored execution, you can specify a routine to be
  684.  executed each time the DragGadget is moved by the user. The string describing
  685.  this routine is generated in your source code.
  686.  
  687. In the BOOLMASK gadget, you can specify a pointer to a BOOLMASK for use in a
  688.  BoolInfo structure. PW will not generate a BoolInfo structure unless you put
  689.  a string into this field.
  690.  
  691. In the EXCLUDE, GADGETID and USERDATA gadgets, you can enter any text strings
  692.  that you want used for these same fields in the Gadget structure. Because
  693.  these fields are not used by Intuition, you can use them for your own data.
  694.  You must provide any data necessary to resolve these references at compile
  695.  or run time.
  696.  
  697. The FUNCTION gadget lets you specify a function or vector which is to be
  698.  executed when this gadget is selected. See Using the event-handler for more
  699.  details.
  700.  
  701. In the SOURCE LABEL gadget, you can enter the exact text for the structure
  702.  name to use when generating source for this gadget. Does not apply to
  703.  BORDER-ONLY or IMAGE-ONLY gadgets.
  704.  
  705. The number in the string gadget LENGTH field must include one extra byte for
  706.  the end-of-line null byte required by Intuition.
  707.  
  708. If you turn on the UNDOBUFFER gadget, PW will generate one undo buffer for
  709.  all those gadgets that refer to it. The buffer will be as large as the
  710.  largest string gadget buffer.
  711.  
  712. The HBODY and VBODY values are a convenient way to indicate the size of the
  713.  AUTOKNOB of proportional gadgets and the distance which the knob can move
  714.  each time the gadget's container is hit. A value of 10, for example, will
  715.  make the AUTOKNOB 1/10 the size of the entire container and it will move 1/10
  716.  of the container each time the container is hit.
  717.  
  718. Please see the Amiga ROM Kernal manuals for complete descriptions of all the
  719.  Gadget flags listed on this screen.
  720.  
  721. Work on gadget borders concerns your control of a gadget's border. After you
  722.  choose the gadget to work with, you have a new menu with the following
  723.  topics:
  724.  
  725.      Borders
  726.      Other
  727.  
  728. On the Borders menu, you will find three functions for the drawing of custom
  729.  borders (1. freehand - where you click in your window, drag and click to set
  730.  the end-point of that vector, and double-click when down; 2. rectangle -
  731.  where you click for the TopLeft corner of the rectangle, drag and click when
  732.  done; and 3. square - in which you click to set the center of the square and
  733.  drag to define its size), a command to edit the offsets, drawmode and pen
  734.  number of the border (for custom border or standard border), and a command
  735.  to delete any custom border. The Other menu lets you turn off the standard
  736.  border, pick a new gadget to work on, or return to the main menu.
  737.  
  738. If you turn off the standard border (not the same as border-only), the gadget
  739.  border will still be displayed by PowerWindows for purposes of editing and
  740.  identification. Any source code generated, however, will not have a gadget
  741.  border structure referenced or generated. In order to generate a gadget with
  742.  absolutely no render, you MUST turn off the standard border.
  743.  
  744. Work on gadget text gives you a new menu that is identical in function to the
  745.  functions concerning windowtext in the Windows menu. Note, however, that
  746.  windowtext is relative to a window and gadgettext to a gadget. Otherwise the
  747.  principles are the same. Write the text, position it in the window by
  748.  clicking and dragging the mouse, and click again when all is as it should
  749.  be.
  750.  
  751. Work on gadget images lets you pick a gadget for which to load imagery, then
  752.  gives you a new menustrip relating to imagery for that gadget. You can load
  753.  an IFF brush for the gadget render of the gadget select image, edit the
  754.  offsets for the image, make the gadget hitbox the exact same size as the
  755.  image, or delete image. PW will automatically set the correct flags in the
  756.  gadget structure allowing you to use the image, delete it, etc., without
  757.  worrying about the render or highlighting flags.
  758.  
  759. Work on PopUpGadget menuitems allows you to edit the menu attached to a
  760.  PopUpGadget just as if it were a normal PowerWindows menu. After choosing
  761.  this option, simply click on the PopUpGadget with which you wish to work,
  762.  and PW2.5 will give you a new menustrip for editing the menuitems attached
  763.  to your PopUpGadget. You can do anything to a PopUpGadget's menuitems that
  764.  you can do to a normal menu's items, including the use of imagery, subitems,
  765.  various highlighting methods and mutual-exclusion of other items on the same
  766.  PopUpMenu. You cannot, however, use alternate command key sequences for
  767.  PopUpGadgets because Intuition would confuse these keys with those reserved
  768.  for common Amiga menus.
  769.  
  770. Move gadget to start of list lets you pick a gadget to move to the start of
  771.  the gadget list. This command and Move gadget to end of list can be used to
  772.  crate lists of gadgets in an exact order. This lets you use only part of a
  773.  gadget list in a given situation.
  774.  
  775. Specify gadget successor lets you indicate that "this" gadget comes right
  776.  after "that" gadget in the list. In the event that two gadgets overlap,
  777.  this command lets you control which gadget is in "front".
  778.  
  779. Delete a gadget deletes whatever gadget you choose. To delete a string
  780.  gadget, you must select and press RETURN. Be careful! There is no going
  781.  back.
  782.  
  783. KNOBS:
  784.  
  785. Knobs are special, new input devices supported by InovaTools1. They have the
  786.  appearance of circular, analog-type dials. They can be rendered in any of the
  787.  standard resolutions and are highly configurable. To use a knob, simply click
  788.  in the body of the knob. If the arrow of the knob (the dial, in other words)
  789.  is not already at the position on the knob where you clicked, it will move
  790.  there. Then, as you move the mouse the knob arrow will move around the knob
  791.  to a new setting. To stop moving the dial, just release the mouse select
  792.  button.
  793.  
  794. A complete discussion of knob properties can be found in the InovaTools1
  795.  documentation, and you must have that software in order to make knobs
  796.  function in your software.
  797.  
  798. If you look at the Knobs menu, you will see the following options available:
  799.  
  800.      Add a knob
  801.      Move a knob
  802.      Clone a knob
  803.      Re-size a knob
  804.      Edit knob parameters
  805.  
  806.      Delete a knob
  807.  
  808. Add a knob works very much like Add a gadget. After choosing this  option,
  809.  click at the point inside your window at which you want the center of the
  810.  knob to appear. Then you simply drag your mouse to size the knob. When the
  811.  outline of the knob's diameter looks correct to you, click on the mouse again
  812.  inside the window and a real Knob will be added to your window. You can
  813.  change its size, position and many other options with the other commands
  814.  from this  menu.
  815.  
  816. Move a knob works in this way: click on the knob you want to move, drag it
  817.  (even to a new window if you like) and click again when it is properly
  818.  placed. If you move a knob to another window, the knob will be removed from
  819.  the window of origin, and appended to the KnobList of the destination.
  820.  
  821. Clone a knob is the functional counterpart of Clone a gadget. Just click on
  822.  the knob to clone and an exact duplicate knob will be created that you can
  823.  then move to someplace in that same window or to another window if you so
  824.  choose.
  825.  
  826. Re-size a knob allows you to click on the knob to resize, drag the mouse and
  827.  then click again when the knob has reached the desired dimensions. Because
  828.  certain rasters and memory must be allocated in order to fill a knob with a
  829.  particular color, making a knob too large can result in a knob that cannot be
  830.  filled.
  831.  
  832. Edit knob parameters will wait for you to select the knob you want to edit
  833.  with the mouse, then will open a requester with gadgets inside it for all of
  834.  the various flags and settings that can be determined for knobs. Although
  835.  you must refer to the InovaTools1 manual for a thorough discussion of all
  836.  these parameters, below is a short list of the items you can control with
  837.  this command:
  838.  
  839.      X and Y coordinates of the knob's center;
  840.      knob flags, including DRAW, FILL, COMPLEMENT, RANGED,
  841.           CALCVALUE, MARKED, and MARKENDS;
  842.      the current settings for the knob's position, range of
  843.           movement, and the number of unique steps in its range;
  844.      the radius of the knob and the length of the knob's arrow
  845.           (dial);
  846.      the colors used for rendering the knob;
  847.      the label to be used in the generated source code for this
  848.           knob;
  849.      fields to name the text strings for the UpdateRoutine,
  850.           KnobID, and UserData fields of the Knob structure.
  851.  
  852. When you have properly set all of the knob's parameters click on the OK gadget
  853.  and the knob you changed will be redisplayed, reflecting your changes. Note
  854.  that if you happen to accidentally move a knob beyond the edge of your
  855.  window, you may use the Clean up command to bring all knobs and gadgets back
  856.  into the boundaries of a selected window.
  857.  
  858. Delete a knob waits for you to click on the knob you want to delete and then
  859.  removes it from the KnobList of its window. The window is then redrawn
  860.  without the knob.
  861.  
  862. PREFERENCES:
  863.  
  864. This menu gives you some flexibility in using PowerWindows 2.5. In it, you'll
  865.  see:
  866.  
  867.      OK prompts
  868.      PW backdrop
  869.      Auto Redraw
  870.      Auto Select
  871.      Mouse coordinates
  872.      Gadget collision checking
  873.      Image color remapping
  874.      Image compression
  875.      Trim extra bitplanes
  876.      Source code comments
  877.      Source code spacing (TAB)
  878.  
  879. The default condition for all of these settings is ON, except for the PW
  880.  backdrop option. However, these settings, along with other relevant data,
  881.  are stored in each PW intermediate file that you save, and are restored when
  882.  the PW intermediate file is reloaded.
  883.  
  884. OK prompts, when checked, gives you a prompting requester at the start of many
  885.  gadget and text related functions. At these prompts, you also have the
  886.  ability of cancelling your action. You can disable these prompts by
  887.  un-checking OK prompts in this menu. You can get the prompt back at any time
  888.  in the middle of a function by pressing the "HELP" key. You will get the
  889.  original help prompt back with the same chance to cancel the operation.
  890.  
  891. PW backdrop controls the PW command window. If this is checked, then it
  892.  becomes a backdrop window. This means that no window opened can appear behind
  893.  the PW command window. Normally, this provides a working area for your
  894.  custom window design. However, if you wish to make the PW command window
  895.  smaller, or design your own backdrop window, then use this option to make PW
  896.  use a standard window.
  897.  
  898. Auto redraw lets you stop PowerWindows from redrawing your window after every
  899.  change you make.
  900.  
  901. Auto select, when checked, tells PowerWindows that each time you click the
  902.  left mouse button, or select a gadget, in one of your windows, that the PW
  903.  command window should be activated. This way, the PW menus are always
  904.  available. However, if you are doing a significant amount of menu editing,
  905.  and are not using a drag bar in your window for safe selects, then you may
  906.  wish to turn this function off so that you can easily select your window in
  907.  order to inspect your menus.
  908.  
  909. Mouse coordinates, when set, shows the absolute X and Y coordinates of the
  910.  mouse on the right side of the PW command window's title bar, during certain
  911.  gadget and text related functions.
  912.  
  913. Gadget collision checking, when checked, makes sure that your gadget hit boxes
  914.  do not bisect one another. If you disable this, gadgets can appear on top of
  915.  each other, which can cause some problems for the user. Note that the
  916.  creators of Intuition strongly discourage this practice.
  917.  
  918. Image color remapping instructs PW to modify the colors of each IFF brush
  919.  image that you load. The purpose of the modification is to best realize the
  920.  original intent of the colors used in the IFF image, when working with a
  921.  palette which is different from that of the image.
  922.  
  923. Image compression makes PowerWindows detect and remove any bitplanes in an
  924.  image which are all 0 or all 1. The image variables, PlanePick and PlaneOnOff
  925.  are adjusted accordingly. This saves memory and reduces the amount of
  926.  ImageData PW generates. Note, however, that if PW performs Image color
  927.  remapping on an image, then planes that were candidates for compression may
  928.  be used to represent the remapped colors.
  929.  
  930. Trim extra bitplanes forces each image loaded to consist of no more bitplanes
  931.  than in the screen onto which it is loaded. If the image is not to be moved
  932.  at runtime, from one resolution to another, this option simply throws away
  933.  undisplayed data.
  934.  
  935. Source code comments, when checked, lets you tell PowerWindows to include a
  936.  comment for almost every line of generated source code, explaining what
  937.  element of each structure that source line represents. Excluding the comments
  938.  results in a smaller, less understandable source file.
  939.  
  940. Source code spacing allows you to set the number of spaces PowerWindows will
  941.  indent each source line with. Alternatively, you can choose TAB as a
  942.  separator, which is the default.
  943.  
  944. OTHER TOPICS:
  945.  
  946. Repeating commands: The F10 key will repeat the last menu command that you
  947.  gave to PW. In several instances, however, PW will not allow a command to be
  948.  repeated because it is no longer valid or because your verification should
  949.  be required, as in the deletion of text or menus, etc.
  950.  
  951. Cancelling commands: When using the gadget and text commands which require
  952.  you to click in your window, you can press the "HELP" key at any time to
  953.  redisplay the OK prompt that explains the current procedure. From that
  954.  prompt, you can press CANCEL to abort the current command.
  955.  
  956. Using the event-handler: The event-handler that PowerWindows can generate uses
  957.  the data that you would normally receive in an IntuiMessage from Intuition.
  958.  You can specify function addresses for gadgets, nemuitems and subitems.
  959.  There is a string gadget labeled FUNCTION found on the editing requesters
  960.  for each of these objects which you must fill in with the proper text for
  961.  your target language. PowerWindows will generate a single event-handler for
  962.  all of these structures. You process your IntuiMessages in the following
  963.  ways:
  964.  
  965.      Gadgets:
  966.           wait for an IntuiMessage of GADGETUP or GADGETDOWN
  967.           get the object address from the IntuiMessage (this is
  968.                     the gadget_address)
  969.           Reply the message to free Intuition for other tasks
  970.           invoke the event-handler with
  971.                     HandleEvent(gadget_address)
  972.      MenuItems and Subitems:
  973.           wait for an IntuiMessage of MENUPICK
  974.           get the code field from the IntuiMessage (this is the
  975.                     MENUNUM)
  976.           Reply the message to free Intuition for other tasks
  977.           get the item_address from Intuition with
  978.                     itemAddress(MENUNUM);
  979.           invoke the event-handler with
  980.                     HandleEvent(item_address);
  981.  
  982. The event-handler will, if the gadget or menuitem is matched, execute the
  983.  indicated function, passing the same object address through to the function
  984.  as a parameter. Please see the example file for the language your are working
  985.  in for specific details.
  986.  
  987. Troubleshooting:
  988.  
  989. "I can't get PW to show its menu!": Try clicking in one of your windows and
  990.  pressing F1. This will bring PW to the front and activate its window.
  991.  
  992. "I can't get my custom menu to display!": Turn Auto Select off and click in
  993.  your window. Press F1 when finished to return to the PW main menu. Or, select
  994.  the drag bar, foreground or close gadget of the window and then you can look
  995.  at your menu. Click inside it again to go back to the PW command menu or
  996.  press F1.
  997.  
  998. "How do I make a custom knob for a PROPGADGET?": Declare a proportional
  999.  gadget and load in the IFF brush for the knob. You can load brushes for
  1000.  both the unselected and selected knob render. Ta-da!
  1001.  
  1002. "When I load in an image, PowerWindows seems to HANG!": PW is just remapping
  1003.  the image. Sometimes, it can take a while. A 320 x 200, 5-bitplane image can
  1004.  take up to 16 seconds to remap. Don't panic, just wait. Or, if you don't need
  1005.  color remapping, turn off the Image color remapping flag under the
  1006.  Preferences menu.
  1007.  
  1008. "I'm lost and I don't know what to do!": You are probably in the middle of a
  1009.  gadget command. Press HELP. It will tell you what you are doing and let you
  1010.  cancel or continue doing it. If that doesn't work, click inside one of your
  1011.  edit windows or the PW command window and press F1. This should return you
  1012.  to the PW command level.
  1013.  
  1014. These docs are brought to you by River Boy.
  1015.